
import hilog from '@ohos.hilog'

const DOMAIN = 0x0001 // 领域标识
const TAG = 'INTERVIEW' // 日志标识
const FORMAT = '%{public}s, ' // 格式字符串

/**
 * 日志工具类
 */
export class Logger {

  // 用于检查指定领域标识、日志标识和级别的日志是否可以打印
  static isLoggable(level: hilog.LogLevel) {
    // 在自己的函数内部转而调用 hilog 的 API
    return hilog.isLoggable(DOMAIN, TAG, level)
  }

  // 调试级别日志，正式发布版本中默认不被打印，只有在调试版本或打开调试开关的情况下才会打印
  static debug(...args: string[]) {
    return hilog.debug(DOMAIN, TAG, FORMAT.repeat(args.length).slice(0, -2), ...args)
  }

  // 普通信息级别日志
  static info(...args: string[]) {
    return hilog.info(DOMAIN, TAG, FORMAT.repeat(args.length).slice(0, -2), ...args)
  }

  // 警告级别日志
  static warn(...args: string[]) {
    return hilog.warn(DOMAIN, TAG, FORMAT.repeat(args.length).slice(0, -2), ...args)
  }

  // 错误级别日志
  static error(...args: string[]) {
    return hilog.error(DOMAIN, TAG, FORMAT.repeat(args.length).slice(0, -2), ...args)
  }

  // 致命级别日志
  static fatal(...args: string[]) {
    return hilog.fatal(DOMAIN, TAG, FORMAT.repeat(args.length).slice(0, -2), ...args)
  }

}